﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MvcEngine.Blog.Models.Entities;
using MvcEngine.Core.Repositories;
using MvcEngine.Core.Pagination;

namespace MvcEngine.Blog.Repositories
{
    public interface IBlogTagRepository
    {
        IList<KeyValuePair<BlogTag, int>> GetTagsWithPostCount(Guid blogId);
        void Add(BlogTagBase entity);
        BlogTagBase Get(Guid id);
        void Delete(Guid id);
        void DeleteAll(Guid blogId);
        IList<BlogTagBase> GetAll(Guid blogId);
        BlogTagBase Get(Guid blogId, string tagSlug);
        IPagination<BlogTagBase> GetAll(Guid blogId, int pageNumber, int pageSize);
        IList<BlogTagBase> GetAllByPost(Guid postId);
        void Update(BlogTagBase tagToSave);
    }
}
